﻿//-----------------------------------------------------------------------
// <copyright file="IGraphics.cs" company="Redmist">
//     Copyright (c) Damien T Smith. All rights reserved.
// </copyright>
// <author>Damien Smith</author>
//-----------------------------------------------------------------------

namespace Redmist.UsageMonitor.IconCreation
{
    using System;
    using System.Drawing;
    using System.Drawing.Text;

    /// <summary>A graphics drawing surface interface.</summary>
    public interface IGraphics : IDisposable
    {
        /// <summary>Gets or sets the rendering mode for text associated with this System.Drawing.Graphics.</summary>
        TextRenderingHint TextRenderingHint { get; set; }

        /// <summary>Fills the interior of a rectangle specified by a System.Drawing.Rectangle structure.</summary>
        /// <param name="brush">A System.Drawing.Brush representing the fill brush.</param>
        /// <param name="rectangle">A System.Drawing.Rectangle representing the area to be filled.</param>
        void FillRectangle(Brush brush, Rectangle rectangle);

        /// <summary>
        /// Draws the specified text string in the specified rectangle with the specified System.Drawing.Brush
        /// and System.Drawing.Font objects using the formatting attributes of the specified System.Drawing.StringFormat.
        /// </summary>
        /// <param name="text">A System.String representing the text to be drawn.</param>
        /// <param name="font">A System.Drawing.Font representing the font to be used.</param>
        /// <param name="brush">A System.Drawing.Brush representing the brush to be used to draw the text.</param>
        /// <param name="layoutPoint">A System.Drawing.PointF representing the text layout point.</param>
        /// <param name="format">A System.Drawing.StringFormat representing the format for the text.</param>
        void DrawString(string text, Font font, Brush brush, PointF layoutPoint, StringFormat format);
    }
}
